Organizing indications of approval for collections

ABSTRACT

A system and method for organizing indications of approval using a collection application is disclosed. The collection application includes a processing module, a social network application, a collection module, a sharing module, a permission module, a user interface engine and a suggestion module. The processing module receives an indication of approval submitted by a user. The collection module groups the indication of approval into a collection. The sharing module shares the collection with one or more users. The suggestion module suggests a collection or indications of approval to a user. The user interface engine generates a user interface that includes the collection.

BACKGROUND

The specification relates to organizing indications of approval. Inparticular, the specification relates to grouping and sharing anindication of approval using collections associated with a socialnetwork.

Over the last decade, social networking has become increasingly popular.People frequently show their approval for websites, posts and commentsby clicking indication of approval buttons, such as a +1, like or athumbs up. Currently, there is no way to easily store, find and sharemultiple indications of approval. For example, if users want to find anindication of approval, they search through the entire list of items.Also, if users want to share multiple indications of approval with afriend they select and share each item separately. Both of these methodsare, of course, very inefficient.

SUMMARY

In some examples, the specification describes a system and method fororganizing indications of approval. The system includes a collectionapplication that comprises a processing module, a social networkapplication, a collection module, a sharing module, a permission module,a user interface engine and a suggestion module. The processing modulereceives and processes indications of approval associated with uniformresource locators from a user of a social network. The collection modulegenerates collections that include indications of approval. The userinterface engine generates a user interface that includes collectionsthat are provided to the user. The specification also includes a methodfor organizing indications of approval, executing on one or morecomputing devices that comprises receiving indications of approvalassociated with uniform resource locators from a first user of a socialnetwork, generating a first and a second collection that each include atleast one of the indications of approval and providing the first and thesecond collections to the first user. In one embodiment, the firstcollection is provided to at least one of another user, a private groupand a public group.

In one embodiment, indications of approval associated with uniformresource locators from a first user device associated with a first userof a social network are received, a first and a second collection aregenerated that each include at least one of the indications of approval,the first and second collections are provided to the user, a firstselection of the first collection is received from the first user, asecond selection of a distribution list for the first user deviceassociated with the first user is received and an indication of theaccess to the first collection for the distribution list is stored.

In another embodiment, the indications of approval include at least oneof a title, a topic, a keyword and a summary. The indications ofapproval are grouped into the first collection based on at least one ofthe title, the topic, the keyword and the summary. A description for thefirst collection is determined based at least in part on at least one ofthe title, the uniform resource locator, the category and the summary.

In yet another embodiment, a suggestion module receives a user profileassociated with the first user and suggests a collection to the userbased at least in part on the user profile. The user profile includes,for example, at least one of interests, activities and demographics. Inanother embodiment, the suggestion module compares the indications ofapproval to other collections, identifies a collection that includes theat least one of the indications of approval and provides the collectionto the first user as a suggestion. In another embodiment, the collectionis suggested to the user based at least in part on a number of timesthat the collection is shared or viewed by other users.

BRIEF DESCRIPTION OF THE DRAWINGS

The specification is illustrated by way of example, and not by way oflimitation in the figures of the accompanying drawings in which likereference numerals are used to refer to similar elements.

FIG. 1 is a high-level block diagram illustrating one embodiment of asystem for organizing an indication of approval.

FIG. 2A is a block diagram illustrating one embodiment of hardwareimplementing the functionality of organizing an indication of approval.

FIG. 2B is a block diagram illustrating one embodiment of a collectionapplication.

FIG. 3A is one example of a graphic representation of a user interfacethat is generated by a user interface engine that includes a collectionaccording to one embodiment.

FIG. 3B is one example of a graphic representation of a user interfacethat is generated by a user interface engine that includes a collectionaccording to an embodiment.

FIG. 4 is a flow diagram of one embodiment of a method for grouping anindication of approval into a collection.

FIG. 5 is a flow diagram of one embodiment of a method for sharing acollection to one or more users.

DETAILED DESCRIPTION

Example Overview

The description includes a system and method for organizing indicationsof approval into collections. The indications of approval include atitle, a uniform resource locator (URL), a category and a summary. Theindications of approval are grouped as a collection that includes adescription, which can be derived from the title, the URL, the categoryand the summary. For example, the user creates a collection of webtools.

The user can share the collection or discrete indications of approvalwithin the collection with a distribution group listed in a distributionlist. The distribution group includes a public group, a private group, asecond user or discrete indications of approval are made available tothe public. This allows for users to share collections while some of theindications of approval within the collection are kept private.

In one embodiment, the system includes a suggestion module that receivesa user profile, identifies collections that the user might findinteresting and suggests the collections to the user. The user profilemay include interests (e.g. soccer, reading, food), activities(searching history, indications of approval, posts, comments) and/ordemographics (age, ethnicity, location). In an embodiment, thesuggestion module suggests a collection based on another factor, such asa number of times that a particular collection is shared or viewed inthe social network. In one embodiment, the suggestion module comparesthe indications of approval to other collections and suggestscollections that include at least one of the indications of approval.

System Overview

FIG. 1 illustrates a block diagram of a system 100 for organizing anindication of approval according to some examples. The illustrateddescription of the system 100 includes user devices 115 a . . . 115 nthat are accessed by users 125 a . . . 125 n and a social network server101. In FIG. 1 and the remaining figures, a letter after a referencenumber, such as “115 a” is a reference to the element having thatparticular reference number. A reference number in the text without afollowing letter, such as “115,” is a general reference to any or allinstances of the element bearing that reference number. In theillustrated embodiment, these entities are communicatively coupled via anetwork 105.

The network 105 is a conventional type, wired or wireless, and may havenumerous different configurations such as a star configuration, tokenring configuration or other configurations known to those skilled in theart. Furthermore, the network 105 may comprise a local area network(LAN), a wide area network (WAN) (e.g., the Internet), and/or any otherinterconnected data path across which multiple devices may communicate.In yet another embodiment, the network 105 may be a peer-to-peernetwork. The network 105 may also be coupled to or includes portions ofa telecommunications network for sending data in a variety of differentcommunication protocols. In yet another embodiment, the network 105includes Bluetooth communication networks or a cellular communicationsnetwork for sending and receiving data such as via short messagingservice (SMS), multimedia messaging service (MMS), hypertext transferprotocol (HTTP), direct data connection, WAP, email, etc. While only onenetwork 105 is coupled to the user devices 115 a, 115 n and the socialnetwork server 101, in practice single or multiple networks 105 can beconnected to the entities.

In one embodiment, the collection application 103 a is operable on thesocial network server 101, which is coupled to the network via signalline 104. The social network server 101 sends and receives data to andfrom one or more of the user devices 115 a, 115 n via the network 105.For example, the social network server 101 is a hardware server.Although only one social network server 101 is shown, persons ofordinary skill in the art will recognize that multiple social networkservers 101 may be present.

In another embodiment, the collection application 103 b is stored on auser device 115 a, which is connected to the network via signal line108. The user device 115 a is any computing device that includes amemory and a processor, for example a laptop computer, a desktopcomputer, a tablet computer, a mobile telephone, a personal digitalassistant (PDA), a mobile email device, a portable game player, aportable music player, a television with one or more processors embeddedtherein or coupled thereto or any other electronic device capable ofaccessing a network. The user 125 a interacts with the user device 115a. In one embodiment, the collection application 103 b acts in part as athin-client application that is stored on the user device 115 a and inpart as components that are stored on the social network server 101.Although only two user devices 115 a, 115 n are illustrated, persons ofordinary skill in the art will recognize that numerous different userdevices 115 n are available to numerous different users 125 n.

The collection application 103 is code and routines for organizingindications of approval. The collection application 103 groupsindications of approval into a collection. The collection application103 receives and processes indications of approval from a user, groupsindications of approval into a collection and shares the collection toone or more users. In one embodiment, the collection application 103determines the sharing levels before allowing a user to view acollection. In another embodiment, the collection application 103suggests a collection to a user. The collection application 103 isdescribed in further detail below with reference to FIGS. 2A-5.

Example System

Referring now to FIG. 2A, the hardware implementing the functionality oforganizing an indication of approval is shown in more detail. FIG. 2A isa block diagram of a computing device 200 that includes memory 237,storage 215, a processor 235 and a communication unit 245. In oneembodiment, the computing device 200 is a social network server 101. Inanother embodiment, the computing device 200 is a user device 115 a.

The processor 235 comprises an arithmetic logic unit, a microprocessor,a general purpose controller or some other processor array to performcomputations and provide electronic display signals to a display device.The processor 235 is coupled to the bus 220 for communication with theother components via signal line 236. Processor 235 processes datasignals and may comprise various computing architectures including acomplex instruction set computer (CISC) architecture, a reducedinstruction set computer (RISC) architecture, or an architectureimplementing a combination of instruction sets. Although only a singleprocessor is shown in FIG. 2A, multiple processors may be included. Theprocessing capability may be limited to supporting the display of imagesand the capture and transmission of images. The processing capabilitymight be enough to perform more complex tasks, including various typesof feature extraction and sampling. It will be obvious to one skilled inthe art that other processors, operating systems, sensors, displays andphysical configurations are possible.

The memory 237 stores instructions and/or data that may be executed byprocessor 235. In one embodiment, the memory 237 includes the collectionapplication 103. The memory 237 is coupled to the bus 220 forcommunication with the other components via signal line 238. Theinstructions and/or data may comprise code for performing any and/or allof the techniques described herein. The memory 237 may be a dynamicrandom access memory (DRAM) device, a static random access memory (SRAM)device, flash memory or some other memory device known in the art. Inone embodiment, the memory 237 also includes a non-volatile memory orsimilar permanent storage device and media such as a hard disk drive, afloppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device,a DVD-RW device, a flash memory device, or some other mass storagedevice known in the art for storing information on a more permanentbasis.

The storage 215 is a non-transitory memory that stores data necessaryfor the functionality of the collection application 103. The storage 215is communicatively coupled by the bus 220 for communication with theother components of the computing device 200 via signal line 240. Thedata stored in the storage 215 includes a social graph 216, indicationsof approval 217 and collection information 219. The phrase social graphas used herein encompasses its plain and ordinary meaning including, butnot limited to, a file that includes the relationships between the usersin a social network. For example, users can be friends, acquaintances,have business relationships, one user can follow another user, one usercan subscribe to another user, etc. The indications of approval 217 is alist (or a database) of indications of approval. For example,indications of approval 217 include links to items (e.g. web pages,images, videos, etc.). The social network content is explained infurther detail below with reference to the social network application203.

The communication unit 245 transmits and receives data to and from atleast one of the user device 115 and the social network server 109depending upon where the collection application 103 is stored. Thecommunication unit 245 is coupled to the bus 220 via signal line 242. Inone embodiment, the communication unit 245 includes a port for directphysical connection to the network 105 or to another communicationchannel. For example, the communication unit 245 includes a USB, SD,CAT-5 or similar port for wired communication with the user device 115.In another embodiment, the communication unit 245 includes a wirelesstransceiver for exchanging data with the user device 115 or any othercommunication channel using one or more wireless communication methods,such as IEEE 802.11, IEEE 802.16, BLUETOOTH® or another suitablewireless communication method.

In yet another embodiment, the communication unit 245 includes acellular communications transceiver for sending and receiving data overa cellular communications network such as via short messaging service(SMS), multimedia messaging service (MMS), hypertext transfer protocol(HTTP), direct data connection, WAP, e-mail or another suitable type ofelectronic communication. In still another embodiment, the communicationunit 245 includes a wired port and a wireless transceiver. Thecommunication unit 245 also provides other conventional connections tothe network for distribution of files and/or media objects usingstandard network protocols such as TCP/IP, HTTP, HTTPS and SMTP as willbe understood to those skilled in the art.

Example Application

Referring now to FIG. 2B, the collection application 103 is shown inmore detail. In one embodiment, the collection application 103 comprisesa processing module 201, a social network application 203, a collectionmodule 205, a permission module 207, a sharing module 209, a userinterface engine 211 and a suggestion module 213 that communicate overthe bus 220.

The processing module 201 is software including routines for receivingand processing user data including indications of approval from a userand social network data. In one embodiment, the processing module 201 isa set of instructions executable by the processor 235 to provide thefunctionality described below for receiving and processing one or moreindications of approval or one or more collections from a user. Inanother embodiment, the processing module 201 is stored in the memory237 of the computing device 200 and is accessible and executable by theprocessor 235. In either embodiment, the processing module 201 isadapted for cooperation and communication with the processor 235 andother components of the computing device 200.

The processing module 201 receives information via the communicationunit 245 from a user device 115. The processing module 201 identifiesthe type of data being received and transmits the data to theappropriate module or engine. For example, the processing module 201receives data for creating a post on the social network from a userdevice 115. In another embodiment, the processing module 201 receives anindication of approval from a user device 115 and transmits theindication to the collection module 205. The processing module 201 sendsthe social network data to the social network application 203. Theindication of approval is information including at least one title, auniform resource locator (URL), a topic, a keyword and a summary. Forexample, a user clicks an indication of approval button, usually in theform of text or an image, for example, a like, a thumbs up or a +1.After the user clicks the indication of approval button, the processingmodule 201 stores the indications of approval 217 in storage 215.

The social network application 203 is software including routines forgenerating and managing a social network. In one embodiment, the socialnetwork application 203 is a set of instructions executable by theprocessor 235 to provide the functionality described below forgenerating and managing a social network. In another embodiment, thesocial network application 203 is stored in the memory 237 of thecomputing device 200 and is accessible and executable by the processor235. In either embodiment, the social network application 203 is adaptedfor cooperation and communication with the processor 235, the storage215, the processing module 201, the user interface engine 211 and othercomponents of the computing device 200.

A social network is any type of social structure where the users 125 areconnected by a common feature, for example, Google+. The common featureincludes friendship, family, work, an interest, etc. The common featuresare provided by one or more social networking systems, such as thoseincluded in the system 100, including explicitly-defined relationshipsand relationships implied by social connections with other online users,where the relationships form a social graph 216. In some examples, thesocial graph 216 reflects a mapping of these users 125 and how they arerelated.

The social network application 203 manages the social network byhandling registration of users, publication of content (e.g. posts,comments, photos, links, etc.), managing of groups, managing differentsharing levels, updating the social graph 216, etc. The social networkapplication 203 registers a user by receiving information such as ausername and password and generates a user profile that is associatedwith the user. In one embodiment, the user profile includes additionalinformation about the user including interests (e.g. soccer, reading,food), activities (searching history, indications of approval, posts,comments) and demographics (age, ethnicity, location).

In one embodiment, the social network application 203 receives socialnetwork content from the processing module 201. The social networkcontent includes, for example, a description of activities performed bythe user 125 and the user's friends, conversations, events, etc. Thesocial network application 203 transmits instructions to the userinterface engine 211 to generate a user interface that includes thesocial network content.

The collection module 205 is software including routines for organizingindications of approval into a collection. In one embodiment, thecollection module 205 is a set of instructions executable by theprocessor 235 to provide functionality described below for groupingindications of approval into a collection. In another embodiment, thecollection module 205 is stored in the memory 237 of the computingdevice 200 and is accessible and executable by the processor 235. Ineither embodiment, the collection module 205 is adapted for cooperationand communication with the processor 235 and other components of thecomputing device 200.

The collection module 205 receives one or more indications of approvalfrom the processing module 201 and generates a collection. Then thecollection module 205 generates a collection and groups the indicationsof approval into the collection. The term collection as used hereinencompasses its plain and ordinary meaning including, but not limitedto, an organizational structure used for simplified retrieval andsharing of indications of approval. A collection can contain numerousdifferent of indications of approval and a name. In one embodiment, thecollection is a label, tag, folder, etc.

In one embodiment, the collection module 205 receives a name andinstructions for how to group the indications of approval from a userfor the collection via the user device 115. In another embodiment, thecollection module 205 groups the indications of approval automaticallyand generates a name for the collection. For example, the collectionmodule 205 compares the indications of approval to lists created byother users and organizes them similarly. In another embodiment, thecollection module 205 generates a description for the collection basedon a title, a uniform resource locator (URL), a topic, a keyword and asummary associated with the indications of approval.

In another embodiment, the collection module 205 first generates acollection and then adds the indications of approval. The collectionmodule 205 receives a selection of one or more indications of approvalfrom the user device 115 and groups them into the collection. Forexample, the collection module 205 receives one or more indications ofapproval from a user that used a drag-and-drop method on the userinterface to group the indications of approval into the collection. Foranother example, the collection module 205 receives a selection ofindications of approval from a user via checkboxes on the userinterface. This system for grouping indications of approval intocollections creates a method for quickly searching for and sharingmultiple indications of approval.

The collection module 205 groups indications of approval into acollection. In one embodiment, the collection module 205 searches thesummary and title of the indication of approval for keywords (e.g.baseball, election, health, animals, etc.). For example, the collectionmodule 205 detects that the indication of approval summary contains theword “baseball.” The collection module 205 then generates a collectionand names it “sports” and groups the baseball indication of approvalinto the collection “sports.” In another example, the collection module205 checks the URL and uses the domain as an indication of the topic.For example, the URL is http://www.website.com/index.html. Thecollection module 205 generates a collection and names it “website.com”and groups the indication of approval into the collection “website.com.”

In another embodiment, the collection module 205 creates multiple layersof collections. For example, a user's profile contains many sportsrelated indications of approval. The collection module 205 groups all ofthe sports related indications of approval into a collection and namesthe collection “sports.” The collection module 205 then groups all thebasketball indications of approval into a collection and names thecollection “basketball,” the collection module 205 groups all thebaseball related indications of approval into a collection and names thecollection “baseball,” and so on. The collection module 205 groups allof the sport collections into the collection “sports.” This creates alogical categorization and reduces the amount of time necessary to finda specific indication of approval within a large group of indications ofapproval.

In another embodiment, the collection module 205 groups an indication ofapproval into multiple collections. For example, a user has anindication of approval that contains a URL to sports scores for baseballand basketball. The collection module 205 receives input from the userto store this indication of approval in both the baseball and basketballcollections. This creates a method for quick retrieval of the sportsscores URL whether the user is looking at the baseball or basketballindications of approval.

The permission module 207 is software including routines for assigning avisibility level to collections or individual indications of approvaland for determining whether a user has permission to view a collectionor indications of approval. In one embodiment, the permission module 207is a set of instructions executable by the processor 235 to provide thefunctionality described below for checking permissions to view acollection. In another embodiment, the permission module 207 is storedin the memory 237 of the computing device 200 and is accessible andexecutable by the processor 235. In either embodiment, the permissionmodule 207 is adapted for cooperation and communication with theprocessor 235 and other components of the computing device 200.

The permission module 207 receives a visibility level from the user thatcreated a collection or individual indications of approval, identifiesthe visibility level and determines whether a requesting user haspermission to view the collection or indications of approval beforeinstructing the sharing module 209 that a collection can be transmittedto the requesting user. The visibility level is one of public,selectively visible (e.g., visible to all people within a public orprivate group, a network, only the user that created the indication ofapproval or the collection, or only to selected users) and hidden fromeveryone except the creator. In one embodiment, the permission module207 determines the identity of the requesting user from the username,display name or any other information present on the requesting user'sprofile.

One advantage of being able to specify a visibility level of individualindications approval is that the collection can be public with certainindications of approval within the list remaining private. Take, forexample, a collection of indications of approval for things in Chicagothat the user likes. The user is fine with the public having access tothe user's likes for favorite restaurants, but the user prefers to keepcertain indications of approval private, such as driving directions tothe user's parents' house. The user does not want the public to knowabout his parents' address, but the user finds it helpful to have allthe indications of approval in one place.

In one embodiment, the permission module 207 sets the visibility levelof the indication of approval to a default visibility level duringcreation of the indication of approval. In another embodiment, thevisibility level of the collection is set to a default visibility duringcreation of the collection.

In yet another embodiment, the permission module 207 does not share thename of the collection. For example, the sharing module 209 shares acollection with a user. The permission module 207 receives a request toview the collection. The permission module 207 communicates with theuser interface engine 211 to generate a user interface that includes theindications of approval and does not include the name of the collection.

The sharing module 209 is software including routines for sharing acollection with one or more users. In one embodiment, the sharing module209 is a set of instructions executable by the processor 235 to providethe functionality described below for sharing a collection or indicationof approval with one or more users. In another embodiment, the sharingmodule 209 is stored in the memory 237 of the computing device 200 andis accessible and executable by the processor 235. In either embodiment,the sharing module 209 is adapted for cooperation and communication withthe processor 235 and other components of the computing device 200.

The sharing module 209 shares a collection with a user after receivingpermission from the permission module 207 to transmit the collection. Inone embodiment, the sharing module 209 receives a collection associatedwith a first user and sends the collection to a second user. Forexample, the sharing module 209 transmits the collection via thecommunication unit 245 as an email, a message on a social network, aninstant messenger (IM), etc. One skilled in the art will recognize thatany method of sharing data known in the art may be used. In anotherembodiment, the sharing module 209 receives a selection of thecollection from a first user, receives a second selection of adistribution list and provides the first selection to the secondselection. The distribution list includes a distribution group, forexample, a public group, a private group, a second user or discreteindications of approval are made available to the public. In thisexample, it is possible to override the visibility level of thecollection that was established via the permission module 207.

In another embodiment, the sharing module 209 transmits one or moreindications of approval apart from the collection. In yet anotherembodiment, the sharing module 209 transmits the collection to one ormore groups of users. One skilled in the art will recognize that anycombination of collections and indications of approval may betransmitted by the sharing module 209 to any combination of users andgroups.

In another embodiment, the sharing module 209 shares the collection withusers outside the social network. For example, the sharing module 209receives an email address from the user and transmits the collection tothe email addresses via the communication unit 245. In another example,the sharing module 209 shares the indications of approval on a websiteand the user interface engine 211 generates a user interface thatincludes the collection. The collection is available for viewing byusers with permission.

The user interface engine 211 is software including routines forgenerating a user interface. In one embodiment, the user interfaceengine 211 is a set of instructions executable by the processor 235 toprovide the functionality described below for generating a userinterface that includes information from the social network, indicationsof approval and collections. In another embodiment, the user interfaceengine 211 is stored in the memory 237 of the computing device 200 andis accessible and executable by the processor 235. In either embodiment,the user interface engine 211 is adapted for cooperation andcommunication with the processor 235 and other components of thecomputing device 200.

The user interface engine 211 receives the indications of approval andcollection information from the processing module 201 and generatesgraphical data for providing a user interface for displaying acollection. The user interface engine 211 sends the graphical data tothe application (e.g., a browser) in the user device 115 causing theapplication to display the collection in a user interface. One skilledin the art will recognize that the user interface engine 211 maygenerate graphical data other objects as well. The user interface isexplained in further detail below with reference to FIG. 3A-3B.

In one embodiment, the user interface engine 211 also generates a userinterface for users to search for collections. For example, a userenters search terms into a text box on the user device that wasgenerated by the user interface engine 211; the search terms arereceived by the processing module 201, which queries the storage 215 formatching collection information 219 and indications of approval 217; thestorage 215 transmits the matches to the permission module 207, whichfilters out the matches that the user does not have permission to viewand the sharing module 209 transmits the matches to the user via thecommunication unit 245.

The suggestion module 213 is software including routines for suggestinga collection. In one embodiment, the suggestion module 213 is a set ofinstructions executable by the processor 235 to provide thefunctionality described below for suggesting a collection to one or moreusers. In another embodiment, the suggestion module 213 is stored in thememory 237 of the computing device 200 and is accessible and executableby the processor 235. In either embodiment, the suggestion module 213 isadapted for cooperation and communication with the processor 235 andother components of the computing device 200.

In another embodiment, the suggestion module 213 suggests a collectionin which to store the indication of approval. The suggestion module 213checks the summary of the indication of approval for keywords or checksthe URL and uses the domain. In yet another embodiment, the suggestionmodule 213 identifies collections to suggest to the user based on amatch between the topic of the collection or indications of approvalwithin the collection and the user profile associated with the user. Thesuggestion module 213 sends the suggestion to the user interface engine211. The user interface engine 211 generates a user interface thatincludes one or more suggestions for the collection.

In yet another embodiment, the suggestion module 213 comparesindications of approval to collections created by other users andsuggests public collections or other public indications of approvalwithin the collection to the user. The comparison includes both findingcollections with the same indication of approval and identifying a topicor keyword in the indication of approval and finding collections withthe same topic or keyword. This helps the user discover new material andcan also be a way to make new connections. For example, a first user isinterested in hiking and indicates approval of several hiking locationsand the suggestion module 213 identifies a public collection created bya second user that includes those hiking locations as well as otherhiking locations, if the first user likes the suggestions he can startfollowing the second user to find more hiking locations or establish afriendship.

In another embodiment, the suggestion module 213 tracks the popularityof public collections and generates a list of popular collectionsorganized according to topics or keywords. In one embodiment, popularityis measured by a number of times that the collection is shared or viewedby other users. For example, popular collections could include acollection of helpful financial tools that includes popular banks, awebsite for preparing tax materials, a website for managing finances anda website for tracking retirement goals. Once a user selects acollection from the user interface generated by the user interfaceengine 211, the collection module 205 adds additional indications ofapproval to the collection in response to the user's selections topersonalize the collection.

Example User Interface Engine

Turning now to FIG. 3A, one example of a graphic representation of auser interface 300 generated by the user interface engine 211 isillustrated. The user interface 300 includes indications of approval 303a, 303 b that are associated with the web tools collection 312 and asports collection 313. In this example, the user device 115 includes alarge screen, such as one on a personal computer or a laptop, althoughthe user interface is easily converted to a display for a smallerscreen, such as a screen on a tablet or a smart phone, by removing thesummary of the user's circles.

In this example, a browser window displays a link 301, two indicationsof approval 303 a, 303 b, a create new button 311 for creating a newcollection and two collections 312, 313. When the +1 301 is selected thecollection information is displayed in the browser window. Thecollections 312, 313 are displayed and can contain different numberindications of approval. In this example, the indications of approval303 a, 303 b for the web tools collection 312 is displayed to the rightof the list of collections. The user creates a new collection byselecting the create new button 311.

In one embodiment the user interface engine 211 adds an indication ofapproval into a collection 313 in response to receiving a user's actionto drag and drops an indication of approval into a collection 313. Inanother embodiment the user clicks a share button 315 and a drop-downlist of groups appears in the browser. The user then selects one or moregroups and the sharing module 209 shares the selected indications ofapproval with the selected groups via the communication unit 245.

FIG. 3B illustrates a graphical representation of the user interfaceafter the user shares the collection with other members. In this examplethe user interface includes a notification 351 that the web toolscollection was shared with the user's family circle, a family header 352that indicates the group that received the collections and a list ofcollections shared with the family group.

Example Methods

Referring now to FIGS. 4-5, various embodiments of the methods forsharing and grouping indications of approval will be described. FIG. 4is a flow diagram of one embodiment of a method 400 for grouping anindication of approval into a collection. In one embodiment, thecollection application 103 includes processing module 201, a socialnetwork application 203, a collection module 205, a user interfacemodule 207 and a suggestion module 213. The processing module 201receives input from a user device 115 and transmits the user input tothe social network application 203, which registers 402 a user for asocial network. Registration includes establishing a username andpassword, creating groups of people that are related to the user(following, friendship, business associations, etc.). The processingmodule 201 receives 404 indications of approval from a user. Forexample, the user approves of a comment, an article or a website. Theuser interface engine 211 generates 406 a user interface that includesone or more indications of approval. The user interface engine 211provides the user interface to the user device 115 via the communicationunit. The user device 115 displays the user interface.

The collection module 205 determines 408 if a collection already exists.If a collection does not exist, a suggestion module 213 compares 409 theindications of approval to other collections to identify collectionsthat contain the same indications of approval that, therefore, might beinteresting to the user and suggests 410 a collection to the user. Forexample, the user provides an indication of approval for an articleabout a venture capitalist, the suggestion module 213 identifies thatthe topic is about a venture capitalist and that the user is located inSilicon Valley and the suggestion module 213 identifies a collectionabout all venture capitalists in Silicon Valley. The suggestion module213 also identifies a collection that includes articles about how tocreate a startup that includes a few articles about venture capitalists.

If a collection does exist or if the user wants to incorporate thesuggested collection, the collection module 205 generates 412 acollection and sets a visibility level for each indication of approvalin the collection that is associated with the user. The visibility levelis defined by the user or set to a default level, such as private to theuser.

FIG. 5 is a flow diagram of one embodiment of a method 500 for sharingone or more collections. In one embodiment, the collection application103 includes processing module 201, a collection module 205, apermission module 207, a sharing module 209, a user interface module 207and a suggestion module 213. The sharing module 209 receives 504 aselection of at least one of an indication of approval and a collectionfrom the user device 115 for distribution. For example, the user wantsto share driving directions. The sharing module 209 also receives 506 aselection of a distribution list that receives the collection. Thedistribution list includes at least one of a user and a group from theuser device 115. For example, the user wants to share the drivingdirections with a travel group. The user or the group is a distributiongroup that includes a public group, a private group or a second user. Inone embodiment, the sharing module 209 receives the selection from thepermission module 207, which received a request from a user to view thecontent and determined whether the user had permission to view thecontent based on the visibility level associated with the indications ofapproval and the collection. For example, only members of the group thatare also friends with the user can view the content. In another example,members of the group can view the content but people that peruse thegroup content cannot see the driving directions until they become amember as approved by a group administrator. The sharing module 209sends 508 the at least one indication of approval and collections to theat least one of the user and group via the communication unit 245.

In the above description, for purposes of explanation, numerous specificdetails are set forth in order to provide a thorough understanding ofthe specification. It will be apparent, however, to one skilled in theart that the invention can be practiced without these specific details.In other instances, structures and devices are shown in block diagramform in order to avoid obscuring the description. For example, thepresent embodiment is described in one embodiment below primarily withreference to user interfaces and particular hardware. However, thepresent embodiment applies to any type of computing device that canreceive data and commands, and any peripheral devices providingservices.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the description. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment.

Some portions of the detailed descriptions that follow are presented interms of algorithms and symbolic representations of operations on databits within a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The present embodiment of the specification also relates to an apparatusfor performing the operations herein. This apparatus may be speciallyconstructed for the required purposes, or it may comprise ageneral-purpose computer selectively activated or reconfigured by acomputer program stored in the computer. Such a computer program may bestored in a computer readable storage medium, such as, but is notlimited to, any type of disk including floppy disks, optical disks,CD-ROMs, and magnetic disks, read-only memories (ROMs), random accessmemories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flashmemories including USB keys with non-volatile memory or any type ofmedia suitable for storing electronic instructions, each coupled to acomputer system bus.

The specification can take the form of an entirely hardware embodiment,an entirely software embodiment or an embodiment containing bothhardware and software elements. In a preferred embodiment, thespecification is implemented in software, which includes but is notlimited to firmware, resident software, microcode, etc.

Furthermore, the description can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

Finally, the algorithms and displays presented herein are not inherentlyrelated to any particular computer or other apparatus. Variousgeneral-purpose systems may be used with programs in accordance with theteachings herein, or it may prove convenient to construct morespecialized apparatus to perform the required method steps. The requiredstructure for a variety of these systems will appear from thedescription below. In addition, the specification is not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the specification as described herein.

The foregoing description of the embodiments of the specification hasbeen presented for the purposes of illustration and description. It isnot intended to be exhaustive or to limit the specification to theprecise form disclosed. Many modifications and variations are possiblein light of the above teaching. It is intended that the scope of thedisclosure be limited not by this detailed description, but rather bythe claims of this application. As will be understood by those familiarwith the art, the specification may be embodied in other specific formswithout departing from the spirit or essential characteristics thereof.Likewise, the particular naming and division of the modules, routines,features, attributes, methodologies and other aspects are not mandatoryor significant, and the mechanisms that implement the specification orits features may have different names, divisions and/or formats.Furthermore, as will be apparent to one of ordinary skill in therelevant art, the modules, routines, features, attributes, methodologiesand other aspects of the disclosure can be implemented as software,hardware, firmware or any combination of the three. Also, wherever acomponent, an example of which is a module, of the specification isimplemented as software, the component can be implemented as astandalone program, as part of a larger program, as a plurality ofseparate programs, as a statically or dynamically linked library, as akernel loadable module, as a device driver, and/or in every and anyother way known now or in the future to those of ordinary skill in theart of computer programming. Additionally, the disclosure is in no waylimited to implementation in any specific programming language, or forany specific operating system or environment. Accordingly, thedisclosure is intended to be illustrative, but not limiting, of thescope of the specification, which is set forth in the following claims.

What is claimed is:
 1. A computer-implemented method for organizingindications of approval, executing on one or more computing devices, themethod comprising: receiving, at the one or more computing devices, theindications of approval associated with uniform resource locators from afirst user device associated with a first user of a social network;determining a first topic for a first indication of approval and asecond topic for a second indication of approval, the first and secondtopics being different; generating, using the one or more computingdevices, a page in the social network comprising a first collection withthe first topic and a second collection with the second topic, the firstand second collections each including at least one of the indications ofapproval and a summary for each of the indications of approval;providing, at the one or more computing devices, the first and secondcollections to the first user; receiving, at the one or more computingdevices, a first visibility level for accessing a first indication ofapproval in the first collection from the first user device associatedwith the first user; receiving, at the one or more computing devices, asecond visibility level for accessing a second indication of approval inthe first collection from the first user device associated with thefirst user; and storing the first and second visibility levelsassociated with the first collection.
 2. The method of claim 1, furthercomprising: receiving a selection of a distribution list that receivesthe second collection; and providing the distribution list with thesecond collection.
 3. The method of claim 2, wherein the distributionlist includes at least one of a public group, a private group and asecond user.
 4. The method of claim 1, wherein the first visibilitylevel is hidden from all users except a creator of the first indicationof approval and further comprising: receiving a request to view thefirst collection from a second user; determining whether the second userhas permission to view the first indication of approval and the secondindication of approval in the first collection based on the firstvisibility level and the second visibility level associated with thefirst collection; determining that the second user is lacking permissionto view the first indication of approval; and responsive to the seconduser having permission to view the second indication of approval,providing the second user with the second indication of approval in thefirst collection.
 5. The method of claim 1, wherein the indications ofapproval include at least one of a title and a keyword.
 6. The method ofclaim 5, further comprising grouping the indications of approval intothe first collection based on at least one of the title, the firsttopic, the keyword and the summary.
 7. The method of claim 6, furthercomprising determining a description for the first collection based atleast in part on at least one of the title, the uniform resourcelocators, a category and the summary.
 8. The method of claim 1, furthercomprising: accessing a user profile associated with the first user; andsuggesting a third collection to the first user based at least in parton the user profile.
 9. The method of claim 8, wherein the user profileincludes at least one of interests, activities and demographics.
 10. Themethod of claim 1, further comprising: comparing at least one of theindications of approval to other collections; identifying a thirdcollection that includes the at least one of the indications ofapproval; and providing the third collection to the first user as asuggestion.
 11. The method of claim 1, further comprising suggesting athird collection to the first user based at least in part on a number oftimes that the third collection is shared or viewed by other users. 12.A system for organizing indications of approval, the system comprising:one or more processors; and a memory storing instructions that, whenexecuted by the one or more processors cause the system to: receive theindications of approval associated with uniform resource locators from afirst user device associated with a first user of a social network;determine a first topic for a first indication of approval and a secondtopic for a second indication of approval, the first and second topicsbeing different; generate a page in the social network comprising afirst collection with the first topic and a second collection with thesecond topic, the first and second collections each including at leastone of the indications of approval and a summary for each of theindications of approval; provide the first and second collections to thefirst user; receive a first visibility level for accessing a firstindication of approval in the first collection from the first userdevice associated with the first user; receive a second visibility levelfor accessing a second indication of approval in the first collectionfrom the first user device associated with the first user; and store thefirst and second visibility levels associated with the first collection.13. The system of claim 12, wherein the one or more processors arefurther configured to: receive a selection of a distribution list thatreceives the second collection; and provide the distribution list withthe second collection.
 14. The system of claim 12, wherein the firstvisibility level is hidden from all users except a creator of the firstindication of approval and the one or more processors are furtherconfigured to: receive a request to view the first collection from asecond user; determine whether the second user has permission to viewthe first indication of approval and the second indication of approvalin the first collection based on the first visibility level and thesecond visibility level associated with the first collection; determinethat the second user is lacking permission to view the first indicationof approval; and responsive to the second user having permission to viewthe second indication of approval, provide the second user with thesecond indication of approval in the first collection.
 15. The system ofclaim 12, wherein the indications of approval include at least one of atitle and a keyword.
 16. The system of claim 12, wherein the one or moreprocessors are further configured to group the indications of approvalinto the first collection based on at least one of the title, the firsttopic, the keyword and the summary.
 17. A computer program productcomprising a non-transitory computer usable medium including a computerreadable program, wherein the computer readable program when executed ona computer causes the computer to perform steps comprising: receiveindications of approval associated with uniform resource locators from afirst user device associated with a first user of a social network;determine a first topic for a first indication of approval and a secondtopic for a second indication of approval, the first and second topicsbeing different; generate a page in the social network comprising afirst collection with the first topic and a second collection with thesecond topic, the first and second collections each including at leastone of the indications of approval and a summary for each of theindications of approval; provide the first and second collections to thefirst user; receive a first visibility level for accessing a firstindication of approval in the first collection from the first userdevice associated with the first user; receive a second visibility levelfor accessing a second indication of approval in the first collectionfrom the first user device associated with the first user; and store thefirst and second visibility levels associated with the first collection.18. The computer-program product of claim 17, further comprising:receiving a selection of a distribution list that receives the secondcollection; and providing the distribution list with the secondcollection.
 19. The computer-program product of claim 17, wherein thefirst visibility level is hidden from all users except a creator of thefirst indication of approval and further comprising: receiving a requestto view the first collection from a second user; determining whether thesecond user has permission to view the first indication of approval andthe second indication of approval in the first collection based on thefirst visibility level and the second visibility level associated withthe first collection; determining that the second user is lackingpermission to view the first indication of approval; and responsive tothe second user having permission to view the second indication ofapproval, providing the second user with the second indication ofapproval in the first collection.
 20. The computer-program product ofclaim 17, wherein the indications of approval include at least one of atitle and a keyword.